#ifndef ERASE_EFFECT_H_
#define ERASE_EFFECT_H_

// INCLUDES //
#include "puzzle_effect.h"
//////////////

/**
* An effect that erases a random puzzle piece.
* 
* @author dfoelber
**/
class EraseEffect : public PuzzleEffect
{
public:
	/**
	* Constructor
	* 
	* @param owner The owner to this effect
	**/
	EraseEffect(RegionEffectOwner* owner);
	
	/**
	* Virtual destructor
	**/
	virtual ~EraseEffect();
	
	/**
	* Notifies the effect to start.
	* 
	* Overridden from RegionEffect.
	**/
	virtual void OnStart();
	
	/**
	* Notifies the effect that the finish state of the puzzle region is finished.
	* 
	* Overridden from PuzzleEffect.
	**/
	virtual void OnFinishCompleted();
	
	/**
	* Asks the effect if it wants to freeze the active object and its association list.
	* 
	* Overridden from RegionEffect.
	* 
	* @return If the active object and association are to be frozen
	**/
	virtual bool FreezeActiveAndSimilar();
	
	/**
	* Input that can be used by the effect.
	* 
	* @param event The event
	* @return If the event was consumed
	**/
	virtual bool Input( SDL_Event event );
};

#endif /*ERASE_EFFECT_H_*/
